@echo off
:: 设置命令行编码为UTF-8
chcp 65001 >nul
setlocal enabledelayedexpansion

echo ========================================
echo    简易前端打包脚本 - 仅打包为NW.js应用
echo ========================================

:: 设置工作目录变量
set "ROOT_DIR=%cd%"
set "FRONTEND_DIR=%ROOT_DIR%\frontend"
set "DIST_DIR=%ROOT_DIR%\dist-frontend"

:: 检查前端目录是否存在
if not exist "%FRONTEND_DIR%" (
  echo 错误: 前端目录 %FRONTEND_DIR% 不存在，请确保目录结构正确。
  exit /b 1
)

:: 检查Node.js环境
echo 正在检查Node.js环境...
node -v >nul 2>&1
if %errorlevel% neq 0 (
  echo 错误: 未检测到Node.js环境，请安装Node.js 12或更高版本。
  exit /b 1
)

:: 创建发布目录
echo 正在创建发布目录...
if exist "%DIST_DIR%" rmdir /s /q "%DIST_DIR%"
mkdir "%DIST_DIR%"

:: 检查dist目录是否已存在
if not exist "%FRONTEND_DIR%\dist" (
  echo 错误: dist目录不存在。
  echo 请注意，此脚本仅用于打包已构建的前端项目。
  echo 请先使用其他方式构建前端项目，例如：
  echo   1. 手动运行 npm run build
  echo   2. 或使用完整的打包脚本 package-frontend.bat
  exit /b 1
)

:: 检查必要文件
if not exist "%FRONTEND_DIR%\package.json" (
  echo 错误: package.json文件不存在，无法进行NW.js打包。
  exit /b 1
)

if not exist "%FRONTEND_DIR%\nw-builder.js" (
  echo 错误: nw-builder.js文件不存在，无法进行NW.js打包。
  exit /b 1
)

:: 复制package.json和nw-builder.js到dist目录
echo 正在复制打包所需文件...
copy "%FRONTEND_DIR%\package.json" "%FRONTEND_DIR%\dist\package.json"
if %errorlevel% neq 0 (
  echo 错误: 无法复制package.json文件到dist目录。
  exit /b 1
)

copy "%FRONTEND_DIR%\nw-builder.js" "%FRONTEND_DIR%\dist\nw-builder.js"
if %errorlevel% neq 0 (
  echo 错误: 无法复制nw-builder.js文件到dist目录。
  exit /b 1
)

:: 检查是否已安装nw-builder
echo 正在检查nw-builder模块...
cd "%FRONTEND_DIR%"
call npm list nw-builder >nul 2>&1
if %errorlevel% neq 0 (
  echo 安装nw-builder模块...
  call npm install --no-save nw-builder
  if %errorlevel% neq 0 (
    echo 尝试强制安装nw-builder模块...
    call npm install --no-save --force nw-builder
    if %errorlevel% neq 0 (
      echo 错误: 无法安装nw-builder模块。
      exit /b 1
    )
  )
)

:: 打包NW.js应用
echo 正在打包为桌面应用...
cd "%FRONTEND_DIR%\dist"
call node nw-builder.js
if %errorlevel% neq 0 (
  echo 错误: NW.js打包失败。
  exit /b 1
) else (
  echo NW.js打包成功。
)

:: 检查打包结果
if not exist "build\im-chat-client\win64" (
  echo 错误: 打包后的目录结构不正确，可能打包过程出现问题。
  exit /b 1
)

:: 复制NW.js打包结果到发布目录
echo 正在复制前端文件到发布目录...
xcopy "build\im-chat-client\win64\*" "%DIST_DIR%\" /E /I /Y
if %errorlevel% neq 0 (
  echo 错误: 无法复制打包结果到发布目录。
  exit /b 1
) else (
  echo 文件复制成功。
)

:: 创建启动客户端的脚本
echo 正在创建启动脚本...
echo @echo off > "%DIST_DIR%\start-client.bat"
echo chcp 65001 ^>nul >> "%DIST_DIR%\start-client.bat"
echo echo 正在启动局域网IM聊天客户端... >> "%DIST_DIR%\start-client.bat"
echo start im-chat-client.exe >> "%DIST_DIR%\start-client.bat"

echo =========================================
echo 打包完成！前端可执行文件在 %DIST_DIR% 目录下
echo 运行 start-client.bat 或直接运行 im-chat-client.exe 启动客户端
echo =========================================

:: 返回到原始目录
cd "%ROOT_DIR%"

endlocal 